package com.zhanghe.study.spring4.beans.aoptest.cglib;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

import java.util.Arrays;

/**
 * @author zh
 * @date 2021/1/5 17:52
 */
@Aspect
@Component
@Order(1)// 使用Order指定切面优先级  数字越小  优先级越高  越先执行
public class SystemLogAspect {

    // JoinPoint 可以获取到方法的一些信息
    @Before("@annotation(com.zhanghe.study.spring4.beans.aoptest.cglib.SystemLog)")
    public void before(JoinPoint point){
        // 获取方法名
        String methodName = point.getSignature().getName();
        // point.getArgs()获取参数
        System.out.println("========"+methodName+"方法执行前,参数为"+ Arrays.toString(point.getArgs()));
    }
}
